# coding=UTF-8
'''
Created on 29 Mar 2012

@author: R
'''

import re
import time
import urllib2

target_url="http://www.baidu.com/"   # 验证代理的时候通过代理访问这个地址
target_string="030173"               # 如果返回的html中包含这个字符串，
target_timeout=20                     # 并且响应时间小于 target_timeout 秒

proxys='''
1 58.83.224.217 8080 HTTP 北京市 铁通 04-27 10:49 2.003 whois 
2 119.57.77.163 80 HTTP 北京市 亿恩科技数据中心 04-27 10:44 1.997 whois 
3 114.112.63.37 8080 HTTP 北京市 亦庄IDC机房 04-27 10:42 2.998 whois 
4 210.14.133.204 80 HTTP 北京市 Sooip.CN 04-27 10:41 1.009 whois 
5 119.2.3.222 3128 HTTP 北京市 神威迅腾科技发展有限公司 04-27 10:38 1.001 whois 
6 61.135.208.184 80 HTTP 北京市 联通ADSL 04-27 10:31 1.003 whois 
 
上海IP代理服务器
ID 地址 端口 类型 地区 验证时间 响应 WHOIS 
1 221.133.238.138 8080 HTTP 上海市 长城宽带 04-27 11:06 1.011 whois 
2 222.73.25.121 6666 HTTP 上海市 电信(外高桥)IDC机房 04-27 11:05 1.992 whois 
3 101.44.1.107 80 HTTP 上海市 鹏博士宽带 04-27 10:56 10.005 whois 
4 116.236.205.100 80 HTTP 上海市长宁区 /普陀区电信 04-27 10:47 1.006 whois 
5 112.65.225.55 3128 HTTP 上海市 联通IDC机房 04-27 10:43 4.010 whois 
6 211.152.36.99 80 HTTP 上海市 电信IDC机房 04-27 07:25 2.003 whois

广东最新IP，可做QQ代理IP
ID 地址 端口 类型 地区 验证时间 响应 WHOIS 
1 125.93.180.234 8081 HTTP 广东省东莞市南城区 淘乐网吧(石鼓综合市场二楼) 04-27 11:08 0.999 whois 
2 202.105.233.40 80 HTTP 广东省肇庆市 电信 04-27 11:07 1.001 whois 
3 218.16.145.109 8080 HTTP 广东省河源市 电信ADSL 04-27 11:06 0.999 whois 
4 221.5.71.188 3128 HTTP 广东省肇庆市 联通ADSL 04-27 11:06 5.001 whois 
5 121.10.252.23 8080 HTTP 广东省肇庆市 电信 04-27 11:03 0.993 whois 
6 220.243.7.126 3128 HTTP 广东省广州市 视讯宽带 04-27 10:55 3.005 whois 
7 124.172.250.177 3128 HTTP 广东省 铁通 04-27 10:52 1.994 whois 
8 58.67.147.202 8080 HTTP 广东省广州市 新一代IDC机房 04-27 10:52 2.014 whois 
9 219.134.240.203 80 HTTP 广东省深圳市南山区 电信ADSL 04-27 10:47 2.001 whois 
10 219.130.39.9 3128 HTTP 广东省东莞市 电信ADSL 04-27 10:40 1.009 whois 
11 121.12.250.201 3128 HTTP 广东省中山市 电信 04-27 09:25 2.003 whois 
'''

def tryproxy(proxy):
    proxy_support = urllib2.ProxyHandler({'http':proxy})
    opener = urllib2.build_opener(proxy_support, urllib2.HTTPHandler)
    urllib2.install_opener(opener)
    s_time=time.time()
    try:
        htmltext = urllib2.urlopen(target_url,timeout=target_timeout).read()
        if htmltext.find(target_string):
            e_time=time.time()
            print proxy, '%4.3fs' %(e_time-s_time)
    except urllib2.URLError:
        print 'timeout', proxy

    
if __name__ == "__main__":
    lines = re.compile('(\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3})\s(\d+)').findall(proxys)
    for line in lines:
        proxy = line[0]+":"+line[1]
        proxy = str(proxy)
        #print 'trying', proxy
        tryproxy(proxy)
        